<html>
<head>
<!-- #BeginEditable "doctitle" -->
<title>Test Condor Policies</title>
<!-- #EndEditable -->
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#FFFFFF" text="#000000">
<h2 align="center"><!-- #BeginEditable "title" -->Test Condor Policies<!-- #EndEditable --></h2>
<P> 
<table width="100%" border="0" cellspacing="2" cellpadding="2">
  <tr> 
    <td width="17%"><b>Test Class:</b></td>
    <td width="83%"><!-- #BeginEditable "file" --><font size="-1"><I>org.tigr.htc.request.testing.TestCondorPolicies</I></font><!-- #EndEditable --></td>
  </tr>
  <tr> 
    <td width="17%"><b>Class Tested: </b></td>
    <td width="83%"><!-- #BeginEditable "class" --><I><font size="-1">org.tigr.htc.request.HTCRequest</font></I><!-- #EndEditable --></td>
  </tr>
  <tr> 
    <td width="17%"><b>Test Procedure: </b></td>
    <td width="83%"><!-- #BeginEditable "procedure" -->Basic Unit Test<!-- #EndEditable --></td>
  </tr>
  <tr> 
    <td width="17%"><b>Test Type: </b></td>
    <td width="83%"><!-- #BeginEditable "type" -->Unit Test<!-- #EndEditable --></td>
  </tr>
</table>
<P> <!-- #BeginEditable "properties_dir" -->
<p><b>Properties Folder: </b></p>
<p>&lt;htcserver check out area&gt;/testing/testprops/unitest/org/tigr/htc/request/ 
</p>
<P> <!-- #EndEditable --> <!-- #BeginEditable "details" --> 
<h2>&nbsp;</h2>
<h2>Test List<b> </b></h2>
<ol>
  <li>Execute an HTCRequest object on a remote machine with user specified operating 
    system.</li>
  <li>Execute an HTCRequest object on a remote machine with at least user specified 
    memory.</li>
</ol>
<h2>Details</h2>
<h3 align="center"><b>Test Name:<i> </i></b>Execute an HTCRequest object on a 
  remote machine with user specified Operating System</h3>
<p><b>Description: </b>This test verifies that an HTCRequest object that is submitted 
  to the HTCServer is launched on a remote machine with user specified operating 
  system. The user specified operating system is set to the HTCRequest object 
  before submitting to the HTCServer. This test needs to be run separately for 
  each valid operating system name. Valid operating system names are LINUX, OSF1 
  (ALPHA) and SOLARIS.</p>
<p><b>Inputs: </b>The inputs for this test would be an HTCRequest object.</p>
<p><strong>Steps:</strong></p>
<ul>
  <li>Prepare the HTCRequest object by setting a preferred operating system to 
    it and register for listening command status change events. </li>
  <li>Submit HTCRequest object to the HTCServer.</li>
  <li>Wait to receive the StartEvent from the HTCServer.</li>
  <li>Get remote machine IP address from the StartEvent object. This machine represents 
    the machine on which the HTCRequest object was executed. </li>
  <li>Based on the IP address obtain the machine name.</li>
  <li>Find out if this remote machine is a single CPU or multi CPU machine by 
    running command: <em>condor_status &lt;remote machine name&gt; -format &quot;%d&quot; 
    TotalVirtualMachines </em></li>
  <li>If the remote machine is a single CPU machine 
    <ul>
      <li>Run <em>'condor_status</em>' command on the machine name and get the 
        machine's operating system.</li>
      <li>Usage of command is: <em>condor_status &lt;remote machine name&gt; -format 
        &quot;%s&quot; OpSys</em></li>
    </ul>
  </li>
  <li>If the remote machine is a multi CPU machine 
    <ul>
      <li>Run '<em>condor_status</em>' command on the 1st virtual machine of the 
        remote machine to get the machine's operating system.</li>
      <li>Usage of command is : <em>condor_status vm1@&lt;remote machine name&gt; 
        -format &quot;%s&quot; OpSys</em></li>
    </ul>
  </li>
</ul>
<p><b>Results: </b> The test is considered successful, </p>
<ul>
  <li>If the operating system specified by the user (which is set to the HTCRequest 
    object) is same as the operating system of the machine on which the HTCRequest 
    is executed. </li>
  <li>If the job finishes with zero return value. This ensures that the job is 
    not evicted immediately. </li>
</ul>
<p>&nbsp;</p>
<h3 align="center"><b>Test Name:<i> </i></b>Execute an HTCRequest object on a 
  remote machine with at least user specified memory</h3>
<P><b>Description: </b>This test verifies that an HTCRequest object that is submitted 
  to HTCServer is executed on a remote machine with minimum memory that is equal 
  to or greater than the memory specified by the user. The user specified memory 
  is set to the HTCRequest object before submitting to the HTCServer.</P>
<p><b>Inputs: </b>The inputs for this test would be an HTCRequest object and a 
  data file.</p>
<p><strong>Steps:</strong></p>
<ul>
  <li>Prepare the HTCRequest object by setting a preferred memory limit for the 
    target machine and register for listening command status change events. </li>
  <li>Submit HTCRequest object to the HTCServer.</li>
  <li>Wait to receive the StartEvent from the HTCServer.</li>
  <li>Get remote machine IP address from the StartEvent object. This machine represents 
    the machine on which the HTCRequest object was executed. </li>
  <li>Based on the IP address obtain the machine name.</li>
  <li>Find out if this remote machine is a single CPU or multi CPU machine by 
    running command: <em>condor_status &lt;remote machine name&gt; -format &quot;%d&quot; 
    TotalVirtualMachines </em></li>
  <li>If the remote machine is a single CPU machine 
    <ul>
      <li>Run <em>'condor_status</em>' command on the machine name and get the 
        machine's memory</li>
      <li>Usage of command is: <em>condor_status &lt;remote machine name&gt; -format 
        &quot;%s&quot; Memory</em></li>
    </ul>
  </li>
  <li>If the remote machine is a multi CPU machine 
    <ul>
      <li>Run '<em>condor_status</em>' command on the 1st virtual machine of the 
        remote machine to get the machine's operating system.</li>
      <li>Usage of command is : <em>condor_status vm1@&lt;remote machine name&gt; 
        -format &quot;%s&quot; Memory</em></li>
    </ul>
  </li>
</ul>
<p><b>Results: </b> The test is considered successful, </p>
<ul>
  <li>If the memory of the machine on which the HTCRequest is executed is equal 
    to or greater than the memory specified by the user.</li>
  <li>If the job finishes with zero return value. This ensures that the job is 
    not evicted immediately.</li>
</ul>
<!-- #EndEditable --> 
<p>&nbsp;</p></body>
</html>
